<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 编译原理 操作系统
        // 冯诺依曼
        // 文件-> 内存 调度者 浏览器 进程
        // 简单数据类型内存
        // var a = 1;//文件来到了内存 &a
        // var b = a;
        // // var a = 2;
        // b = 2;
        // // 对象空间是独立的，o 拿到的是这块地址的引用
        // console.log(a,b);
        // // const c = 2 ;
        // // c = 3;
        // // 看过去和编译发生不一样
        // var o = {name:'fu'};
        // var b = o;
        // b.name = 'xc';
        // console.log(o.name,b.name);
        var obj = {
            // function空间分配
            // 函数 功能的封装 
            // 内部还有再分配空间
            // 堆
            // 函数的运行一定要有应该上下文环境
            foo : function(){
                console.log(this.bar);
            },
            bar : 1

        }
        var bar = 2;
        var foo = obj.foo;//函数的地址 &
        // 不同的运行方式 带来不同的结果

        foo();//this->全局 
        obj.foo();//this->context obj
        var f = function(){
    // 上下文环境如何，this如何
    console.log(this.x);
}
    var x = 1; // window 全局
    var obj = {
    f,
    x: 2
}
    console.log(obj.f);
    f();
    obj.f();
        

    </script>
</body>
</html>